
from core.basic.skill import 技能
from core.basic.character import Character
from core.basic.skill import 主动技能, 被动技能
class 主动技能(主动技能):
    不加成冰枪技能倍率 = 1

class 技能0(主动技能):
    名称 = '冰魄剑'
    所在等级 = 15
    等级上限 = 70
    等级精通 = 60
    学习间隔 = 2
    MP = [30, 280]
    data0 = [int(x*1.209*1.106) for x in [0, 670, 736, 806, 877, 945, 1010, 1080, 1148, 1221, 1289, 1358, 1424, 1492, 1566, 1632, 1703, 1774, 1846, 1914, 1980, 2051, 2117, 2189, 2259, 2327, 2392, 2463, 2533, 2603, 2672, 2739, 2806, 2877,
                                    2947, 3016, 3083, 3153, 3223, 3291, 3360, 3426, 3498, 3569, 3635, 3709, 3774, 3846, 3915, 3984, 4053, 4121, 4191, 4259, 4328, 4397, 4465, 4535, 4604, 4676, 4742, 4812, 4880, 4950, 5019, 5089, 5155, 5226, 5293, 5363, 5434]]
    hit0 = 2
    data1 = [int(x*1.209*1.106) for x in [0, 801, 883, 967, 1046, 1130, 1213, 1297, 1380, 1465, 1548, 1631, 1711, 1794, 1878, 1960, 2045, 2130, 2211, 2295, 2374, 2457, 2542, 2625, 2710, 2793, 2875, 2959, 3038, 3123, 3206, 3286, 3372, 3451,
                                    3534, 3618, 3700, 3785, 3864, 3947, 4032, 4112, 4198, 4277, 4360, 4450, 4535, 4615, 4698, 4780, 4862, 4944, 5028, 5111, 5196, 5275, 5358, 5443, 5524, 5609, 5691, 5777, 5856, 5938, 6024, 6105, 6189, 6272, 6356, 6436, 6519]]
    hit1 = 1
    演出时间 = 1.0
    CD = 5.0
    TP成长 = 0.1
    TP上限 = 7

    def 技能形态改变(self):
        self.hit1 = 0


class 技能1(被动技能):
    名称 = '冰武精通'
    所在等级 = 15
    等级上限 = 20
    基础等级 = 10

    关联技能 = ['所有']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.10 + 0.01 * self.等级, 5)


class 技能2(主动技能):
    名称 = '寒冰连枪'
    所在等级 = 20
    等级上限 = 70
    等级精通 = 60
    学习间隔 = 2
    MP = [20, 210]
    data0 = [int(x*1.208*1.107) for x in [0, 386, 425, 464, 503, 543, 582, 621, 660, 699, 739, 778, 817, 856, 895, 935, 974, 1013, 1052, 1091, 1131, 1170, 1209, 1248, 1287, 1327, 1366, 1405, 1444, 1483, 1522, 1562, 1601, 1640, 1679,
                                    1718, 1758, 1797, 1836, 1875, 1914, 1954, 1993, 2032, 2071, 2110, 2150, 2189, 2228, 2267, 2306, 2346, 2385, 2424, 2463, 2502, 2542, 2581, 2620, 2659, 2698, 2738, 2777, 2816, 2855, 2894, 2933, 2973, 3012, 3051, 3090]]
    hit0 = 5
    演出时间 = 1.5
    CD = 3.0
    TP成长 = 0.10
    TP上限 = 7


class 技能3(主动技能):
    名称 = '冰魄旋枪'
    所在等级 = 25
    等级上限 = 70
    等级精通 = 60
    学习间隔 = 2
    MP = [35, 350]
    data0 = [int(x*1.159*1.104) for x in [0, 266, 292, 319, 347, 373, 400, 427, 454, 481, 508, 534, 562, 589, 616, 643, 670, 697, 723, 751, 778, 804, 832, 859, 885, 912, 940, 966, 993, 1021, 1047, 1074, 1101, 1129, 1155, 1182,
                                    1210, 1236, 1263, 1290, 1317, 1344, 1371, 1398, 1425, 1452, 1478, 1506, 1533, 1559, 1587, 1614, 1640, 1667, 1695, 1722, 1748, 1776, 1803, 1829, 1856, 1884, 1910, 1937, 1965, 1991, 2018, 2045, 2072, 2099, 2126]]
    hit0 = 16
    演出时间 = 1.5
    CD = 7.0
    TP成长 = 0.10
    TP上限 = 7


class 技能4(主动技能):
    名称 = '冰霜之径'
    所在等级 = 25
    等级上限 = 20
    基础等级 = 10
    是否有伤害 = 0
    关联技能 = ['所有']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.07 + 0.01 * self.等级, 5)


class 技能5(被动技能):
    名称 = '冰之领悟'
    所在等级 = 25
    等级上限 = 20
    基础等级 = 10
    关联技能 = ['所有']

    def 魔法攻击力倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        elif self.等级 <= 10:
            return (1.02 + self.等级 * 0.01)
        else:
            return (1.12 + (self.等级 - 10) * 0.02)


class 技能6(主动技能):
    名称 = '冰魄之弓'
    所在等级 = 30
    等级上限 = 70
    等级精通 = 60
    学习间隔 = 2
    MP = [60, 546]
    data0 = [int(x*1.202*1.067) for x in [0, 1433, 1579, 1724, 1870, 2015, 2161, 2306, 2452, 2597, 2743, 2888, 3033, 3178, 3324, 3469, 3615, 3760, 3906, 4051, 4197, 4343, 4488, 4634, 4779, 4925, 5069, 5215, 5360, 5506, 5651, 5797, 5942, 6088,
                                    6233, 6379, 6524, 6670, 6815, 6960, 7106, 7251, 7397, 7542, 7688, 7833, 7979, 8124, 8270, 8415, 8561, 8706, 8852, 8996, 9142, 9287, 9433, 9579, 9724, 9870, 10015, 10161, 10306, 10452, 10597, 10743, 10887, 11033, 11178, 11324, 11469]]
    hit0 = 3
    data1 = [int(x*1.202*1.067) for x in [0, 2171, 2392, 2612, 2833, 3053, 3274, 3493, 3714, 3934, 4155, 4375, 4596, 4816, 5036, 5256, 5477, 5697, 5918, 6138, 6359, 6579, 6799, 7019, 7240, 7460, 7681, 7901, 8122, 8341, 8562, 8782, 9003, 9223, 9444, 9664,
                                    9885, 10104, 10325, 10545, 10766, 10986, 11207, 11427, 11647, 11867, 12088, 12308, 12529, 12749, 12970, 13190, 13410, 13630, 13851, 14071, 14292, 14512, 14733, 14952, 15173, 15393, 15614, 15834, 16055, 16275, 16496, 16715, 16935, 17156, 17376]]
    hit1 = 1
    演出时间 = 1.5
    CD = 8.0
    TP成长 = 0.10
    TP上限 = 7


class 技能7(主动技能):
    名称 = '破冰飞刃'
    所在等级 = 30
    等级上限 = 70
    等级精通 = 60
    学习间隔 = 2
    MP = [60, 546]
    data0 = [int(x*1.213*1.066) for x in [0, 262, 289, 315, 342, 369, 395, 422, 448, 475, 502, 528, 555, 582, 608, 635, 662, 688, 715, 741, 768, 795, 821, 848, 875, 901, 928, 955, 981, 1008, 1034, 1061, 1088, 1114, 1141, 1168,
                                    1194, 1221, 1248, 1274, 1301, 1327, 1354, 1381, 1407, 1434, 1461, 1487, 1514, 1541, 1567, 1594, 1620, 1647, 1674, 1700, 1727, 1754, 1780, 1807, 1834, 1860, 1887, 1913, 1940, 1967, 1993, 2020, 2047, 2073, 2100]]
    hit0 = 24
    演出时间 = 1.0
    CD = 8.0
    TP成长 = 0.10
    TP上限 = 7


class 技能8(被动技能):
    名称 = '水晶剑'
    所在等级 = 30
    等级上限 = 11
    基础等级 = 1
    关联技能 = ['冰魄剑']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return (2.00 + (self.等级-1) * 0.02)


class 技能9(主动技能):
    名称 = '旋冰穿刺'
    所在等级 = 35
    等级上限 = 70
    等级精通 = 60
    学习间隔 = 2
    MP = [180, 1512]
    data0 = [int(x*1.187*1.105) for x in [0, 907, 999, 1091, 1183, 1275, 1367, 1459, 1551, 1643, 1735, 1827, 1920, 2012, 2104, 2196, 2288, 2380, 2472, 2564, 2656, 2748, 2840, 2932, 3024, 3116, 3208, 3300, 3392, 3485, 3577, 3669, 3761, 3853,
                                    3945, 4037, 4129, 4221, 4313, 4405, 4497, 4589, 4681, 4773, 4865, 4957, 5049, 5142, 5234, 5326, 5418, 5510, 5602, 5694, 5786, 5878, 5970, 6062, 6154, 6246, 6338, 6430, 6522, 6614, 6707, 6799, 6891, 6983, 7075, 7167, 7259]]
    hit0 = 1
    data1 = [int(x*1.187*1.105) for x in [0, 8166, 8995, 9823, 10652, 11480, 12309, 13137, 13966, 14794, 15623, 16451, 17280, 18108, 18937, 19765, 20594, 21422, 22251, 23079, 23908, 24736, 25565, 26394, 27222, 28051, 28879, 29708, 30536, 31365, 32193, 33022, 33850, 34679,
                                    35507, 36336, 37164, 37993, 38821, 39650, 40478, 41307, 42135, 42964, 43792, 44621, 45449, 46278, 47106, 47935, 48763, 49592, 50420, 51249, 52077, 52906, 53734, 54563, 55391, 56220, 57048, 57877, 58705, 59534, 60363, 61191, 62020, 62848, 63677, 64505, 65334]]
    hit1 = 1
    演出时间 = 1.5
    CD = 15.0
    TP成长 = 0.10
    TP上限 = 5


class 技能10(主动技能):
    名称 = '冰魄锤击'
    所在等级 = 35
    等级上限 = 70
    等级精通 = 60
    学习间隔 = 2
    MP = [185, 1526]
    无色消耗 = 1
    data0 = [int(x*1.211*1.326) for x in [0, 8365, 9214, 10063, 10911, 11760, 12609, 13458, 14306, 15155, 16004, 16852, 17701, 18550, 19398, 20247, 21096, 21945, 22793, 23642, 24491, 25339, 26188, 27037, 27885, 28734, 29583, 30432, 31280, 32129, 32978, 33826, 34675, 35524,
                                    36372, 37221, 38070, 38919, 39767, 40616, 41465, 42313, 43162, 44011, 44860, 45708, 46557, 47406, 48254, 49103, 49952, 50800, 51649, 52498, 53347, 54195, 55044, 55893, 56741, 57590, 58439, 59287, 60136, 60985, 61834, 62682, 63531, 64380, 65228, 66077, 66926]]
    hit0 = 1
    演出时间 = 1.0
    CD = 18.0
    TP成长 = 0.10
    TP上限 = 5
    是否有护石 = 1

    def 装备护石(self):
        self.倍率 *= 1.36


class 技能11(主动技能):
    名称 = '极冰绽放'
    所在等级 = 40
    等级上限 = 70
    等级精通 = 60
    学习间隔 = 2
    MP = [160, 1344]
    无色消耗 = 1
    data0 = [int(x*1.219*1.102) for x in [0, 777, 855, 934, 1013, 1092, 1171, 1250, 1328, 1407, 1486, 1565, 1644, 1723, 1801, 1880, 1959, 2038, 2117, 2196, 2274, 2353, 2432, 2511, 2590, 2669, 2747, 2826, 2905, 2984, 3063, 3142, 3221, 3299, 3378, 3457,
                                    3536, 3615, 3694, 3772, 3851, 3930, 4009, 4088, 4167, 4245, 4324, 4403, 4482, 4561, 4640, 4718, 4797, 4876, 4955, 5034, 5113, 5191, 5270, 5349, 5428, 5507, 5586, 5664, 5743, 5822, 5901, 5980, 6059, 6137, 6216]]
    power0 = 1.95
    hit0 = 4
    data1 = [int(x*1.219*1.102) for x in [0, 3433, 3782, 4130, 4478, 4827, 5175, 5523, 5872, 6220, 6568, 6917, 7265, 7613, 7962, 8310, 8658, 9007, 9355, 9703, 10052, 10400, 10748, 11097, 11445, 11793, 12142, 12490, 12839, 13187, 13535, 13884, 14232, 14580, 14929, 15277, 15625,
                                    15974, 16322, 16670, 17019, 17367, 17715, 18064, 18412, 18760, 19109, 19457, 19805, 20154, 20502, 20850, 21199, 21547, 21895, 22244, 22592, 22941, 23289, 23637, 23986, 24334, 24682, 25031, 25379, 25727, 26076, 26424, 26772, 27121, 27469]]
    power1 = 2.35
    hit1 = 1
    演出时间 = 2.0
    CD = 20.0
    TP成长 = 0.10
    TP上限 = 5
    是否有护石 = 1

    def 装备护石(self):
        self.power0 *= 1.11
        self.power1 *= 1.38
        self.CDR *= 0.90


class 技能12(主动技能):
    名称 = '冰雪风暴'
    所在等级 = 45
    等级上限 = 70
    等级精通 = 60
    学习间隔 = 2
    MP = [350, 3080]
    无色消耗 = 2
    data0 = [int(x*1.214*1.065) for x in [0, 1048, 1154, 1260, 1367, 1473, 1579, 1686, 1792, 1899, 2005, 2111, 2218, 2324, 2430, 2537, 2643, 2749, 2856, 2962, 3068, 3175, 3281, 3387, 3494, 3600, 3706, 3813, 3919, 4025, 4132, 4238, 4344,
                                    4451, 4557, 4663, 4770, 4876, 4982, 5089, 5195, 5302, 5408, 5514, 5621, 5727, 5833, 5940, 6046, 6152, 6259, 6365, 6471, 6578, 6684, 6790, 6897, 7003, 7109, 7216, 7322, 7428, 7535, 7641, 7747, 7854, 7960, 8066, 8173, 8279, 8386]]
    hit0 = 14
    power0 = 1.0
    data1 = [int(x*1.214*1.065) for x in [0, 10233, 11272, 12310, 13348, 14386, 15425, 16463, 17501, 18539, 19577, 20616, 21654, 22692, 23730, 24769, 25807, 26845, 27883, 28921, 29960, 30998, 32036, 33074, 34113, 35151, 36189, 37227, 38265, 39304, 40342, 41380, 42418, 43457,
                                    44495, 45533, 46571, 47609, 48648, 49686, 50724, 51762, 52801, 53839, 54877, 55915, 56953, 57992, 59030, 60068, 61106, 62145, 63183, 64221, 65259, 66297, 67336, 68374, 69412, 70450, 71489, 72527, 73565, 74603, 75641, 76680, 77718, 78756, 79794, 80833, 81871]]
    hit1 = 1
    power1 = 1.0
    演出时间 = 2.5
    CD = 40.0
    TP成长 = 0.10
    TP上限 = 5
    是否有护石 = 1

    def 装备护石(self):
        self.hit0 = 16
        self.power1 *= 1.34


class 技能13(被动技能):
    名称 = '冰封奥义'
    所在等级 = 48

    等级上限 = 50
    等级精通 = 40
    学习间隔 = 3

    关联技能 = ['所有']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.105 + 0.015 * self.等级, 5)


class 技能14(主动技能):
    名称 = '千旋冰轮破'
    所在等级 = 50
    等级上限 = 50
    等级精通 = 40
    学习间隔 = 5
    MP = [1200, 10080]
    无色消耗 = 5
    data0 = [int(x*1.209*1.063) for x in [0, 1055, 1300, 1544, 1790, 2035, 2279, 2524, 2768, 3014, 3259, 3503, 3748, 3992, 4237, 4483, 4727, 4972, 5217, 5461, 5707, 5952, 6196, 6441, 6685, 6930, 7176, 7420, 7665, 7910, 8154, 8399, 8645, 8889, 9134, 9378,
                                    9623, 9869, 10113, 10358, 10602, 10847, 11092, 11337, 11582, 11827, 12071, 12316, 12560, 12806, 13051, 13295, 13540, 13785, 14030, 14275, 14520, 14764, 15009, 15253, 15499, 15744, 15988, 16233, 16477, 16722, 16968, 17212, 17457, 17702, 17946]]
    hit0 = 42
    data1 = [int(x*1.209*1.063) for x in [0, 897, 1105, 1313, 1522, 1731, 1939, 2147, 2355, 2563, 2771, 2980, 3188, 3396, 3604, 3812, 4020, 4229, 4437, 4645, 4853, 5061, 5269, 5478, 5686, 5894, 6102, 6311, 6519, 6727, 6936, 7144, 7352, 7560, 7768, 7976,
                                    8185, 8393, 8601, 8809, 9017, 9225, 9434, 9642, 9850, 10058, 10266, 10474, 10682, 10892, 11100, 11308, 11516, 11724, 11932, 12141, 12349, 12557, 12765, 12973, 13181, 13390, 13598, 13806, 14014, 14222, 14430, 14640, 14848, 15056, 15264]]
    hit1 = 22
    data2 = [int(x*1.209*1.063) for x in [0, 3144, 3875, 4604, 5333, 6062, 6792, 7521, 8250, 8979, 9709, 10439, 11168, 11897, 12627, 13356, 14085, 14814, 15544, 16274, 17003, 17733, 18462, 19191, 19920, 20649, 21379, 22109, 22838, 23568, 24297, 25026, 25755, 26484, 27214,
                                    27943, 28673, 29403, 30132, 30861, 31590, 32319, 33049, 33778, 34508, 35238, 35967, 36696, 37425, 38154, 38884, 39613, 40342, 41073, 41802, 42531, 43260, 43989, 44719, 45448, 46177, 46908, 47637, 48366, 49095, 49825, 50554, 51283, 52012, 52743, 53472]]
    hit2 = 1
    CD = 145.0


class 技能15(主动技能):
    名称 = '冰凌破'
    所在等级 = 60
    等级上限 = 50
    等级精通 = 40
    学习间隔 = 2
    MP = [400, 1120]
    无色消耗 = 1
    data0 = [int(x*1.209*1.069) for x in [0, 775, 854, 933, 1011, 1090, 1169, 1247, 1326, 1405, 1483, 1562, 1641, 1719, 1798, 1877, 1956, 2034, 2113, 2192, 2270, 2349, 2428, 2506, 2585, 2664, 2742, 2821, 2900, 2979, 3057, 3136, 3215, 3293,
                                    3372, 3451, 3529, 3608, 3687, 3765, 3844, 3923, 4002, 4080, 4159, 4238, 4316, 4395, 4474, 4552, 4631, 4710, 4788, 4867, 4946, 5025, 5103, 5182, 5261, 5339, 5418, 5497, 5575, 5654, 5733, 5811, 5890, 5969, 6048, 6126, 6205]]
    hit0 = 25
    data1 = [int(x*1.209*1.069) for x in [0, 3693, 4068, 4443, 4817, 5192, 5567, 5942, 6316, 6691, 7066, 7440, 7815, 8190, 8565, 8939, 9314, 9689, 10063, 10438, 10813, 11188, 11562, 11937, 12312, 12687, 13061, 13436, 13811, 14185, 14560, 14935, 15310, 15684, 16059,
                                    16434, 16808, 17183, 17558, 17933, 18307, 18682, 19057, 19432, 19806, 20181, 20556, 20930, 21305, 21680, 22055, 22429, 22804, 23179, 23553, 23928, 24303, 24678, 25052, 25427, 25802, 26177, 26551, 26926, 27301, 27675, 28050, 28425, 28800, 29174, 29549]]
    hit1 = 1
    演出时间 = 2.0
    CD = 30.0
    TP成长 = 0.10
    TP上限 = 5
    是否有护石 = 1

    def 装备护石(self):
        self.倍率 *= 1.31


class 技能16(主动技能):
    名称 = '千里冰封'
    所在等级 = 70
    等级上限 = 50
    等级精通 = 40
    学习间隔 = 2
    MP = [900, 1820]
    无色消耗 = 2
    data0 = [int(x*1.27*1.067) for x in [0, 10790, 11885, 12980, 14074, 15169, 16264, 17358, 18453, 19548, 20643, 21737, 22832, 23927, 25021, 26116, 27211, 28305, 29400, 30495, 31590, 32684, 33779, 34874, 35968, 37063, 38158, 39252, 40347, 41442, 42537, 43631, 44726, 45821,
                                   46915, 48010, 49105, 50200, 51294, 52389, 53484, 54578, 55673, 56768, 57862, 58957, 60052, 61147, 62241, 63336, 64431, 65525, 66620, 67715, 68810, 69904, 70999, 72094, 73188, 74283, 75378, 76472, 77567, 78662, 79757, 80851, 81946, 83041, 84135, 85230, 86325]]
    hit0 = 3
    power0 = 1.0
    演出时间 = 2.0
    CD = 50.0
    TP成长 = 0.10
    TP上限 = 5
    是否有护石 = 1

    def 装备护石(self):
        self.hit0 = 1
        self.power0 = 3.8


class 技能17(被动技能):
    名称 = '冰之技艺'
    所在等级 = 75

    等级上限 = 50
    等级精通 = 40
    学习间隔 = 3

    关联技能 = ['所有']
    冰枪关联技能 = ['冰魄剑', '寒冰连枪', '冰魄旋枪', '旋冰穿刺', '冰魄锤击', '极冰绽放', '碎冰破', '极冰猎魔斩']
    额外冰枪攻击力 = 0
    额外冰枪倍率 = 1

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.16 + 0.02 * self.等级, 5)

    def 冰枪加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return 1.10


# 按技能data无法与游戏中伤害对应，因此从一级起验证，结果按核对伤害手动增加29百分比
class 技能18(主动技能):
    名称 = '碎冰破'
    所在等级 = 75
    等级上限 = 50
    等级精通 = 40
    学习间隔 = 2
    MP = [580, 4500]
    无色消耗 = 3
    data0 = [int(x*1.209*1.322) for x in [0, 33412, 36802, 40191, 43581, 46971, 50360, 53750, 57140, 60529, 63919, 67309, 70698, 74088, 77478, 80867, 84257, 87647, 91036, 94426, 97816, 101205, 104595, 107985, 111374, 114764, 118154, 121543, 124933, 128323, 131712, 135102, 138492, 141881, 145271,
                                    148661, 152050, 155440, 158830, 162219, 165609, 168999, 172388, 175778, 179168, 182557, 185947, 189337, 192726, 196116, 199506, 202895, 206285, 209675, 213064, 216454, 219844, 223233, 226623, 230013, 233402, 236792, 240182, 243571, 246961, 250351, 253740, 257130, 260520, 263909, 267299]]
    hit0 = 1
    data1 = [int(x*1.209*1.322) for x in [0, 12165, 13399, 14633, 15867, 17102, 18336, 19570, 20804, 22038, 23272, 24507, 25741, 26975, 28209, 29443, 30677, 31912, 33146, 34380, 35614, 36848, 38082, 39317, 40551, 41785, 43019, 44253, 45487, 46722, 47956, 49190, 50424, 51658,
                                    52893, 54127, 55361, 56595, 57829, 59063, 60298, 61532, 62766, 64000, 65234, 66468, 67703, 68937, 70171, 71405, 72639, 73873, 75108, 76342, 77576, 78810, 80044, 81278, 82513, 83747, 84981, 86215, 87449, 88683, 89918, 91152, 92386, 93620, 94854, 96088, 97323]]
    hit1 = 1
    演出时间 = 1.0
    CD = 40.0
    是否有护石 = 1

    def 装备护石(self):
        self.power0 *= 1.46


class 技能19(主动技能):
    名称 = '极冰领域'
    所在等级 = 80
    等级上限 = 50
    等级精通 = 40
    学习间隔 = 2
    MP = [800, 6000]
    无色消耗 = 5
    data0 = [int(x*1.214*1.068) for x in [0, 46248, 50939, 55631, 60323, 65014, 69706, 74398, 79089, 83781, 88474, 93166, 97857, 102549, 107241, 111932, 116624, 121316, 126007, 130700, 135392, 140084, 144775, 149467, 154159, 158850, 163542, 168234, 172926, 177618, 182310, 187002, 191693, 196385, 201077,
                                    205768, 210460, 215153, 219844, 224536, 229228, 233919, 238611, 243303, 247994, 252686, 257379, 262071, 266762, 271454, 276146, 280837, 285529, 290221, 294912, 299605, 304297, 308989, 313680, 318372, 323064, 327755, 332447, 337139, 341831, 346523, 351215, 355907, 360598, 365290, 369982]]
    演出时间 = 0.65
    CD = 40.0
    是否有护石 = 1

    def 装备护石(self):
        self.倍率 *= 1.32
        self.CDR *= 0.9


class 技能20(主动技能):
    名称 = '永罪冰狱'
    所在等级 = 85
    等级上限 = 50
    等级精通 = 40
    学习间隔 = 5
    MP = [2500, 5000]
    无色消耗 = 10
    data0 = [int(x*1.271*1.123) for x in [0, 43095, 53088, 63081, 73074, 83067, 93061, 103054, 113047, 123040, 133033, 143026, 153019, 163012, 173006, 182999, 192992, 202985, 212978, 222971, 232964, 242957, 252951, 262944, 272937, 282930, 292923, 302916, 312909, 322902, 332896, 342889, 352882, 362875,
                                    372868, 382861, 392854, 402848, 412841, 422834, 432827, 442820, 452813, 462806, 472799, 482793, 492786, 502779, 512772, 522765, 532758, 542751, 552744, 562738, 572731, 582724, 592717, 602710, 612703, 622696, 632689, 642683, 652676, 662669, 672662, 682655, 692648, 702641, 712635, 722628, 732621]]
    hit0 = 1
    data1 = [int(x*1.271*1.123) for x in [0, 19147, 23587, 28027, 32467, 36907, 41347, 45787, 50227, 54667, 59107, 63547, 67987, 72426, 76866, 81306, 85746, 90186, 94626, 99066, 103506, 107946, 112386, 116826, 121266, 125706, 130146, 134586, 139026, 143466, 147906, 152346, 156786, 161226, 165666,
                                    170106, 174546, 178986, 183426, 187866, 192306, 196746, 201186, 205626, 210066, 214505, 218945, 223385, 227825, 232265, 236705, 241145, 245585, 250025, 254465, 258905, 263345, 267785, 272225, 276665, 281105, 285545, 289985, 294425, 298865, 303305, 307745, 312185, 316625, 321065, 325505]]
    hit1 = 2
    data2 = [int(x*1.271*1.123) for x in [0, 28803, 35482, 42162, 48841, 55520, 62199, 68878, 75557, 82236, 88916, 95595, 102274, 108953, 115632, 122311, 128991, 135670, 142349, 149028, 155707, 162386, 169065, 175745, 182424, 189103, 195782, 202461, 209140, 215819, 222499, 229178, 235857, 242536, 249215,
                                    255894, 262573, 269253, 275932, 282611, 289290, 295969, 302648, 309327, 316007, 322686, 329365, 336044, 342723, 349402, 356081, 362761, 369440, 376119, 382798, 389477, 396156, 402836, 409515, 416194, 422873, 429552, 436231, 442910, 449590, 456269, 462948, 469627, 476306, 482985, 489664]]
    hit2 = 1
    CD = 180.0


class 技能21(被动技能):
    名称 = '冰霜之手'
    所在等级 = 95

    等级上限 = 50
    学习间隔 = 3
    等级精通 = 40

    关联技能 = ['所有']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.18 + 0.02 * self.等级, 5)


class 技能22(主动技能):
    名称 = '极冰猎魔斩'
    所在等级 = 95
    等级上限 = 50
    等级精通 = 40
    学习间隔 = 2
    MP = [960, 7200]
    无色消耗 = 7
    data0 = [int(x*1.23*1.103) for x in [0, 114676, 126310, 137943, 149577, 161211, 172845, 184479, 196113, 207746, 219380, 231014, 242648, 254282, 265915, 277549, 289183, 300817, 312451, 324085, 335718, 347352, 358986, 370620, 382254, 393888, 405521, 417155, 428789, 440423, 452057, 463690, 475324, 486958,
                                   498592, 510226, 521860, 533493, 545127, 556761, 568395, 580029, 591662, 603296, 614930, 626564, 638198, 649832, 661465, 673099, 684733, 696367, 708001, 719635, 731268, 742902, 754536, 766170, 777804, 789437, 801071, 812705, 824339, 835973, 847607, 859240, 870874, 882508, 894142, 905776, 917410]]
    hit0 = 1
    CD = 60.0


class 技能23(主动技能):
    名称 = '永劫：纳斯特隆德'
    所在等级 = 100
    等级上限 = 50
    等级精通 = 40
    学习间隔 = 5
    MP = [4027, 8055]
    无色消耗 = 15
    data0 = [int(x*1.21*1.06) for x in [0, 4031, 4966, 5900, 6835, 7770, 8705, 9640, 10575, 11509, 12444, 13379, 14314, 15249, 16183, 17118, 18053, 18988, 19923, 20857, 21792, 22727, 23662, 24597, 25531, 26466, 27401, 28336, 29271, 30205, 31140, 32075, 33010, 33945,
                                   34879, 35814, 36749, 37684, 38619, 39554, 40488, 41423, 42358, 43293, 44228, 45162, 46097, 47032, 47967, 48902, 49836, 50771, 51706, 52641, 53576, 54510, 55445, 56380, 57315, 58250, 59184, 60119, 61054, 61989, 62924, 63859, 64793, 65728, 66663, 67598, 68533]]
    hit0 = 1
    data1 = [int(x*1.21*1.06) for x in [0, 40313, 49661, 59009, 68357, 77705, 87053, 96401, 105750, 115098, 124446, 133794, 143142, 152490, 161838, 171186, 180534, 189882, 199230, 208578, 217926, 227274, 236623, 245971, 255319, 264667, 274015, 283363, 292711, 302059, 311407, 320755, 330103, 339451, 348799,
                                   358147, 367495, 376844, 386192, 395540, 404888, 414236, 423584, 432932, 442280, 451628, 460976, 470324, 479672, 489020, 498368, 507717, 517065, 526413, 535761, 545109, 554457, 563805, 573153, 582501, 591849, 601197, 610545, 619893, 629241, 638590, 647938, 657286, 666634, 675982, 685330]]
    hit1 = 1
    data2 = [int(x*1.21*1.06) for x in [0, 28219, 34763, 41306, 47850, 54394, 60937, 67481, 74025, 80568, 87112, 93655, 100199, 106743, 113286, 119830, 126374, 132917, 139461, 146005, 152548, 159092, 165636, 172179, 178723, 185267, 191810, 198354, 204898, 211441, 217985, 224528, 231072, 237616, 244159,
                                   250703, 257247, 263790, 270334, 276878, 283421, 289965, 296509, 303052, 309596, 316140, 322683, 329227, 335770, 342314, 348858, 355401, 361945, 368489, 375032, 381576, 388120, 394663, 401207, 407751, 414294, 420838, 427382, 433925, 440469, 447013, 453556, 460100, 466643, 473187, 479731]]
    hit2 = 2
    data3 = [int(x*1.21*1.06) for x in [0, 60470, 74492, 88514, 102536, 116558, 130580, 144602, 158625, 172647, 186669, 200691, 214713, 228735, 242757, 256779, 270801, 284824, 298846, 312868, 326890, 340912, 354934, 368956, 382978, 397000, 411022, 425045, 439067, 453089, 467111, 481133, 495155, 509177,
                                   523199, 537221, 551244, 565266, 579288, 593310, 607332, 621354, 635376, 649398, 663420, 677442, 691465, 705487, 719509, 733531, 747553, 761575, 775597, 789619, 803641, 817664, 831686, 845708, 859730, 873752, 887774, 901796, 915818, 929840, 943862, 957885, 971907, 985929, 999951, 1013973, 1027995]]
    hit3 = 1
    data4 = [int(x*1.21*1.06) for x in [0, 120940, 148984, 177029, 205073, 233117, 261161, 289205, 317250, 345294, 373338, 401382, 429426, 457471, 485515, 513559, 541603, 569648, 597692, 625736, 653780, 681824, 709869, 737913, 765957, 794001, 822045, 850090, 878134, 906178, 934222, 962266, 990311, 1018355, 1046399, 1074443,
                                   1102488, 1130532, 1158576, 1186620, 1214664, 1242709, 1270753, 1298797, 1326841, 1354885, 1382930, 1410974, 1439018, 1467062, 1495106, 1523151, 1551195, 1579239, 1607283, 1635328, 1663372, 1691416, 1719460, 1747504, 1775549, 1803593, 1831637, 1859681, 1887725, 1915770, 1943814, 1971858, 1999902, 2027946, 2055991]]
    hit4 = 1
    data5 = [int(x*1.21*1.06) for x in [0, 8062, 9932, 11801, 13671, 15541, 17410, 19280, 21150, 23019, 24889, 26758, 28628, 30498, 32367, 34237, 36106, 37976, 39846, 41715, 43585, 45454, 47324, 49194, 51063, 52933, 54803, 56672, 58542, 60411, 62281, 64151, 66020, 67890, 69759,
                                   71629, 73499, 75368, 77238, 79108, 80977, 82847, 84716, 86586, 88456, 90325, 92195, 94064, 95934, 97804, 99673, 101543, 103413, 105282, 107152, 109021, 110891, 112761, 114630, 116500, 118369, 120239, 122109, 123978, 125848, 127718, 129587, 131457, 133326, 135196, 137066]]
    hit5 = 5
    data6 = [int(x*1.21*1.06) for x in [0, 13437, 16553, 19669, 22785, 25901, 29017, 32133, 35250, 38366, 41482, 44598, 47714, 50830, 53946, 57062, 60178, 63294, 66410, 69526, 72642, 75758, 78874, 81990, 85106, 88222, 91338, 94454, 97570, 100686, 103802, 106918, 110034, 113150, 116266, 119382,
                                   122498, 125614, 128730, 131846, 134962, 138078, 141194, 144310, 147426, 150542, 153658, 156774, 159890, 163006, 166122, 169239, 172355, 175471, 178587, 181703, 184819, 187935, 191051, 194167, 197283, 200399, 203515, 206631, 209747, 212863, 215979, 219095, 222211, 225327, 228443]]
    hit6 = 6

    CD = 290.0


class classChange(Character):
    def __init__(self):
        self.实际名称 = 'glacial_master'
        self.名称 = '知源·冰结师'
        self.角色 = '魔法师(男)'

        self.职业 = '冰结师'
        self.武器选项 = ['魔杖', '法杖']
        self.输出类型选项 = ['魔法百分比']
        self.防具精通属性 = ['智力']
        self.类型 = '魔法百分比'
        self.武器类型 = '魔杖'
        self.防具类型 = '皮甲'

        技能列表 = []
        技能序号 = {}
        i = 0
        while i >= 0:
            try:
                tem = eval('技能'+str(i)+'()')
                tem.基础等级计算()
                技能序号[tem.名称] = i
                技能列表.append(tem)
                i += 1
            except:
                i = -1
        self.技能栏 = 技能列表
        self.技能序号 = 技能序号
        self.buff = 1.80

        super().__init__()

    def 职业特殊计算(self):
        if self.get_skill_by_name('水晶剑').等级 != 0:
            self.get_skill_by_name('冰魄剑').技能形态改变()
        冰之技艺 = self.get_skill_by_name('冰之技艺')
        temp = [0]* len(冰之技艺.冰枪关联技能)
        for i in range(len(temp)-1):
            temp[i] = 冰之技艺.冰枪关联技能[i]+','
        temp[len(temp)-1] = 冰之技艺.冰枪关联技能[len(temp)-1]
        self.skills_passive['冰之技艺']['info'] = [{
            "type": "倍率",
            "info": [(冰之技艺.冰枪加成倍率(self.武器类型) - 1) * 100 , temp, '无']
        },
        ]

    def set_skill_info(self, info, rune_except=[], clothes_pants=[]):
        super().set_skill_info(info, clothes_pants=['远古记忆'])

    def 技能倍率加成(self, min: int, max: int, x: float, exc=[int], type="all") -> None:
        for i in self.技能栏:
            if i.所在等级 >= min and i.所在等级 <= max and i.所在等级 not in exc:
                if i.是否有伤害 == 1:
                    if type == "all" or (type == "active" and i.是否主动 == 1):
                        if i.名称 in self.get_skill_by_name('冰之技艺').冰枪关联技能:
                            i.不加成冰枪技能倍率 *= (1 + x * self.技能伤害增加增幅)
                        else:
                            i.倍率 *= (1 + x * self.技能伤害增加增幅)
                if i.名称 == "冰之技艺" and min == max == 75 and type == "all":
                    i.额外冰枪倍率 *= (1 + x * self.技能伤害增加增幅)

    def 伤害指数计算(self):

        iceneedle = self.get_skill_by_name('冰之技艺')
        for i in self.技能栏:
            if i.名称 in self.get_skill_by_name('冰之技艺').冰枪关联技能:
               i.倍率 *= (i.不加成冰枪技能倍率 + (iceneedle.冰枪加成倍率(self.武器类型) - 1) * iceneedle.额外冰枪倍率)

        super().伤害指数计算()

